﻿using UnityEngine;
using System.Collections;

public class CameraScript : MonoBehaviour {

	public Transform player;									/* Variable die den Spieler enthält */
	public Vector3 lastPos;										/* Position des des Spielers im letzten Frame */
	public Vector3 normCamPos = new Vector3( 0, 10, -15 ); 		/* Kameraposition realtiv zum Spieler */
	private Vector3 relCamPos;									/* Vektor zwischen Kamera und Spieler */
	private float camPosMag;									/* Länge des Vektors zwischen Kamera und Spieler */
	public float zoomSpeed;										/* Zoomspeed der Kamera */
	public float delay;
	// Use this for initialization
	void Start () {
		relCamPos = normCamPos + player.position;
		lastPos = player.position;								/* Initialisierung des Anfangsframes */
	}
	
	// Update is called once per frame
	void Update () 
	{
		camPosMag = relCamPos.magnitude;

		transform.position = Vector3.Lerp (lastPos + relCamPos, player.position + relCamPos, Time.deltaTime);
		if ( lastPos == player.position ) {
			/* Hereinzoomen der Kamera */
			if( camPosMag < 15 )
			{
				zoomSpeed = 0;
			}
			else
			{
				zoomSpeed = 0.002f;
				relCamPos.z += zoomSpeed;
				relCamPos.y -= zoomSpeed*2;
			}
		} 
		else 
		{
			/* Herauszoomen der Kamera */
			if( camPosMag > 19 )
			{
				zoomSpeed = 0;
			}
			else
			{
				zoomSpeed = 0.02f;
				relCamPos.z -= zoomSpeed;
				relCamPos.y += zoomSpeed*2;
			}

			//transform.position = Vector3.Lerp (lastPos + relCamPos, player.position + relCamPos, Time.deltaTime );

		}
				
		lastPos = player.position;

	}

}
